﻿<?php


class admin extends Controller{

	function admin()
	{
		parent::Controller() ;
		
		$this->load->helper('form');
		$this->load->helper('url');
		$this->load->library('session');
		
		//le géocodeur de Karim !
		$this->load->library('geocodeur');
	}


	function index(){		
		$data = array();
		$data = $this->gen_base_data();
		
		$data['billets'][0]['titre'] =  "Identification";
		if ( $this->session->userdata('login') ){
				$data['billets'][0]['contenu'] =  "<p>Bonjour ".$this->session->userdata('login')."<br/>Vous êtes identifié, vous pouvez maintenant modifier le contenu de ce blog grâce aux menus de gauche.</p>";
		}else{	
				$data['billets'][0]['contenu'] =  "<p>Bonjour,<br/>Vous n'êtes pas identifié,vous devez l'être pour modifier le contenu de ce blog.<br/>
				<form method=\"post\" id ='ident'>
					<center>
						<input type=\"text\" name=\"pseudo\" value=\"pseudo\" id=\"pseudo\"/><br/>
						<input type=\"password\" name=\"pass\" id=\"pass\" /><br/>
						<input type=\"button\" value=\"Valider\" id=\"bouton_try2log\"/>
					</center>
				</form>
				</p>";
		}		
		
		$this->load->view('admin_view', $data) ;
	}	
	
	/***********************************************************************************************************************
	************************                                 Identification
	**************************************************************************************************************************/
	
		//RAZ Identification
	function logpage() {	
		$titre =  "Echec d'identification";	
		$contenu =  "<p>Bonjour,<br/>Vous n'êtes pas identifié,vous devez l'être pour modifier le contenu de ce blog.<br/>
			<form method=\"post\" id ='ident'>
				<center>
						<input type=\"text\" name=\"pseudo\" value=\"pseudo\" id=\"pseudo\"/><br/>
						<input type=\"password\" name=\"pass\" id=\"pass\" /><br/>
					<input type=\"button\" value=\"Valider\" id=\"bouton_try2log\"/>
				</center>
			</form>
			</p>";
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}	
	
	
	//vérification de l'identité
	function verification() {		
		if ( $this->session->userdata('login') ){
			$this->session->unset_userdata('login');
			$this->session->unset_userdata('auteur_id');
		}	
		
		$titre =  "Echec d'identification";	
		$contenu =  "<p>Bonjour,<br/>Vous n'êtes pas identifié,vous devez l'être pour modifier le contenu de ce blog.<br/>
			<form method=\"post\" id ='ident'>
				<center>
						<input type=\"text\" name=\"pseudo\" value=\"pseudo\" id=\"pseudo\"/><br/>
						<input type=\"password\" name=\"pass\" id=\"pass\" /><br/>
					<input type=\"button\" value=\"Valider\" id=\"bouton_try2log\"/>
				</center>
			</form>
			</p>";
				
		
		$login = $_POST['pseudo'] ;
		$mdp = $_POST['pass'] ;	
		
		$this->db->where('nom', $login) ;
		$liste = $this->db->get('auteurs') ;	
		
		if( ($liste->num_rows() == 1)&& ($mdp != NULL) ){	
			foreach($liste->result() as $admin){
				$ref_mdp = $admin->mdp ;		
			}
			$enc_mdp = md5($mdp) ;
			if($ref_mdp == $enc_mdp){
					$titre =  "Identification réussie";	
					$this->session->set_userdata('login', $login) ;
					$this->session->set_userdata('auteur_id', $admin->id) ;
					$contenu =  "<p>Bonjour ".$this->session->userdata('login')."<br/>Vous êtes identifié, vous pouvez maintenant modifier le contenu de ce blog grâce aux menus de gauche.</p>";
			}
		}	
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}	
		
	function logout() {	
		$titre =  "Identification"	;
				
		$contenu =  "<p>Bonjour,<br/>Vous n'êtes pas identifié,vous devez l'être pour modifier le contenu de ce blog.<br/>
			<form method=\"post\" id ='ident'>
				<center>
						<input type=\"text\" name=\"pseudo\" value=\"pseudo\" id=\"pseudo\"/><br/>
						<input type=\"password\" name=\"pass\" id=\"pass\" /><br/>
					<input type=\"button\" value=\"Valider\" id=\"bouton_try2log\"/>
				</center>
			</form>
			</p>";
		if ( $this->session->userdata('login') ){
			$this->session->unset_userdata('login');
			$this->session->unset_userdata('auteur_id');
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
		
	/***********************************************************************************************************************
	************************                                lieux
	**************************************************************************************************************************/	
	
	function ajout_lieu() {	
		$titre =  "Ajout d'un lieu"	;
				
		$liste = $this->db->get('themes') ;		
		$icones = $this->db->get('icones') ;			
		
		$contenu =  "<p>Veuillez remplir les champs ci dessous :<br/>
			<form method=\"post\" name='ajout_lien' id ='ajout_lieu'>
				<center>
						<textarea cols='47' rows='1' name=\"nom_lieu\" id=\"nom_lieu\">Nom du lieu</textarea><br/>
						type de repérage de l'adresse?<br/>
						<select name=\"type_rep\" style='width:30em' id=\"type_rep\" >
							<option selected value='adr'>adresse</option>
							<option value='coord'>coordonnées</option>
						</select><br/>
						<textarea cols='47' rows='5' name=\"adresse\" id=\"adresse\">adresse</textarea><br/>
						<textarea cols='22' rows='1' name=\"longitude\" id=\"longitude\">longitude</textarea>
						<textarea cols='21' rows='1' name=\"latitude\" id=\"latitude\">latitude</textarea><br/>
						<div id=\"choix_theme_lieu\">choixthème?<br/>
						<select name=\"theme\" style='width:30em' id=\"theme\" >";
							foreach ($liste->result() as $theme){
										$contenu .="<option value=".$theme->id.">".$theme->intitule."</option>";		
							}
							$contenu .="<option selected value='nouveau'>nouveau thème</option>";	
							$contenu .="</select><br />
													<textarea cols='47' rows='1' name=\"description\" id=\"nouveautheme\">nom du thème</textarea><br/></div>
													<textarea cols='47' rows='5' name=\"description\" id=\"description\">description du lieu</textarea><br/>
											icone?<br/>	
											<select name=\"icone\" style='width:30em' id=\"icone\" >";
							foreach ($icones->result() as $ico){
										$contenu .="<option value=".$ico->id.">".$ico->icone."</option>";		
							}
							$contenu .="</select><br />
													<input type=\"date\" name=\"calendrier\" id='calendrier' value='06/07/2008' SIZE=25 readonly='true'/>
														<a href=\"javascript:void(0)\" name=\"choix_date\" id='choix_date'>choisir</A><br/>";
							$contenu .="<input type=\"button\" value=\"Valider\" id=\"bouton_ajout_lieu\"/>
				</center>
			</form>
			</p>";
				
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
		
	function add_lieu() {
		$titre = "lieu ajouté !" ;
		
		$geocodeur = new geocodeur(base_url()) ;
		
		$nom_lieu = $_POST['nom_lieu'] ;
		$type_rep = $_POST['type_rep'] ;
		$adresse = $_POST['adresse'] ;
		$longitude = $_POST['longitude'] ;
		$latitude = $_POST['latitude'] ;
		$date = $_POST['date'] ;
		$theme_id = $_POST['theme_id']  ;
		$new_theme = $_POST['new_theme'] ;
		$description = $_POST['description'] ;
		$icone = $_POST['icone'] ;
		
		if ($theme_id == 'nouveau'){	
		
			unset($insert) ;
			$insert = array() ;
			$insert['intitule'] = $new_theme ;
			
			//test de la non existence			
			$this->db->where('intitule', $new_theme) ;
			$query = $this->db->get('themes') ;	
			if ($query->num_rows()<1){				
				//ajout du thème à la bdd
				$this->db->insert('themes', $insert) ;
				
				//récupération de l'id du thème
				$this->db->where('intitule', $new_theme) ;
				$query = $this->db->get('themes') ;	
			}
			
			foreach($query->result() as $row){
				$theme_id = $row->id ;
			}
		}
		
		//récupération des données manquantes
		if ($type_rep == 'coord') {
			$adresse = $geocodeur->trouver_adresse($longitude, $latitude) ;
		}else{
			$coord = $geocodeur->trouver_coordonnees($adresse) ;
			$longitude = $coord['longitude'] ;
			$latitude= $coord['latitude'] ;
		}
				
		//arrangement de la date
		sscanf($date, "%d/%d/%d", $m, $d, $y) ;
		$date = mktime(0, 0, 0, $m, $d, $y) ; 
		$date = date("Y-m-d h:i:s", $date );
				
		//préparation deu tuple à insérer
		unset($insert) ;
		$insert['nom_lieu'] = $nom_lieu ;
		$insert['longitude'] = $longitude ;
		$insert['latitude'] = $latitude ;
		$insert['description'] = $description ;
		$insert['adresse'] = $adresse ;
		$insert['theme_id'] = $theme_id ;
		$insert['date'] = $date ;
		$insert['numero'] = "0" ;
		$insert['icone_id'] = $icone ;
				
		$this->db->insert('lieux', $insert) ;
		
		$contenu = "<p><tab/>L'adresse ".$adresse.", de longitude ".$longitude." et de latitude ".$latitude." a été ajoutée sous la description suivante :</br>".$description."<br/></p>" ;
			
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
		$this->generer_xml();
	}	
	
	function supprime_lieu() {	
		$titre =  "Suppression d'un lieu"	;
				
		$liste = $this->db->get('lieux') ;			
		
		$contenu =  "<p>Veuillez sélectionner le lieu à supprimer<br/>
			<form method=\"post\" name='supp_le_lien' id ='supp_lieu'>
				<center>
						<select name=\"type_rep\" style='width:30em' id=\"lieu\" >";
							foreach ($liste->result() as $lieu){
										$contenu .="<option value=".$lieu->id.">".$lieu->nom_lieu."</option>";		
							}
							$contenu .="<input type=\"button\" value=\"Supprimer\" id=\"bouton_supp_lieu\"/>
				</center>
			</form>
			</p>";
						
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
		
	function supp_lieu() {
		$titre = "lieu supprimé !" ;
		
		$lieu_id = $_POST['lieu_id'] ;
										
		unset($insert) ;				
		$insert['id'] = $lieu_id ;	
		$query = $this->db->get_where('lieux', $insert, "1", "0");
		$lieu = $query->row() ;
						
		$this->db->delete('lieux', $insert) ;
		
		$contenu = "<p><tab/>L'adresse ".$lieu->adresse.", de longitude ".$lieu->longitude." et de latitude ".$lieu->latitude." a été supprimée. Elle était enregistrée sous la description suivante :</br>".$lieu->description."<br/></p>" ;
			
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
			
	function choix_lieu() {	
		$titre =  "Choix d'un lieu à modifier"	;
				
		$liste = $this->db->get('lieux') ;			
		
		$contenu =  "<p>Veuillez sélectionner le lieu à modifier<br/>
			<form method=\"post\" name='modif_le_lien' id ='choix_lieu'>
				<center>
						<select name=\"type_rep\" style='width:30em' id=\"lieu\" >";
							foreach ($liste->result() as $lieu){
										$contenu .="<option value=".$lieu->id.">".$lieu->nom_lieu."</option>";		
							}
							$contenu .="<input type=\"button\" value=\"Modifier\" id=\"bouton_choix_lieu\"/>
				</center>
			</form>
			</p>";
						
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}			
	
			
	function modifie_lieu() {	
		
		$titre =  "Modification d'un lieu"	;
		unset($insert);
		$liste = $this->db->get('themes') ;
		$icones = $this->db->get('icones') ;	
		$lieu_id = $_POST['lieu_id'] ;
		$insert['id'] = $lieu_id ;	
		$query = $this->db->get_where('lieux', $insert, "1", "0");
		$lieu = $query->row() ;	
		
		$contenu =  "<p>Veuillez remplir les champs ci dessous :<br/>
			<form method=\"post\" name='ajout_lien' id ='ajout_lieu'>
				<input type=\"hidden\" name=\"lieu_id\" id='lieu' value='".$lieu->id."' SIZE=0 readonly='true'/>
				<center>
						Nom du lieu?<br />
						<textarea cols='47' rows='1' name=\"nom_lieu\" id=\"nom_lieu\">".$lieu->nom_lieu."</textarea><br/>
						type de repérage de l'adresse?<br/>
						<select name=\"type_rep\" style='width:30em' id=\"type_rep\" >
							<option selected value='adr'>adresse</option>
							<option value='coord'>coordonnées</option>
						</select><br/>
						<textarea cols='47' rows='5' name=\"adresse\" id=\"adresse\">".$lieu->adresse."</textarea><br/>
						<textarea cols='22' rows='1' name=\"longitude\" id=\"longitude\">".$lieu->longitude."</textarea>
						<textarea cols='21' rows='1' name=\"latitude\" id=\"latitude\">".$lieu->latitude."</textarea><br/>
						thème?<br/>
						<select name=\"theme\" style='width:30em' id=\"theme\" >";
							foreach ($liste->result() as $theme){
										$contenu .="<option";
										if ($theme->id == $lieu->theme_id){
										$contenu .= " selected" ;
										$the_theme = $theme->intitule ;
										}
										$contenu .= " value='".$theme->id."'>".$theme->intitule."</option>";												
							}
							$contenu .="<option value='nouveau'>nouveau thème</option>";	
							$contenu .="</select><br />
													<textarea cols='47' rows='1' name=\"description\" id=\"nouveautheme\">".$the_theme."</textarea><br/>
													<textarea cols='47' rows='5' name=\"description\" id=\"description\">".$lieu->description."</textarea><br/>
											icone?<br/>	
											<select name=\"icone\" style='width:30em' id=\"icone\" >";
							foreach ($icones->result() as $ico){
										$contenu .="<option " ;
										if ($ico->id == $lieu->icone_id){
										$contenu .= "selected" ;
										}	
										$contenu .= " value=".$ico->id.">".$ico->icone."</option>";	
							}
							$an = strtok($lieu->date,"-") ;
							$mois = strtok("-") ;
							$jour =strtok(" ") ;
							$date = $mois." - ".$jour." - ".$an ;
							$contenu .="</select><br />
													<input type=\"date\" name=\"calendrier\" id='calendrier' value='".$date."' SIZE=25 readonly='true'/>
														<a href=\"javascript:void(0)\" name=\"choix_date\" id='choix_date'>choisir</A><br/>";
							$contenu .="<input type=\"button\" value=\"Valider\" id=\"bouton_modif_lieu\"/>
				</center>
			</form>
			</p>";
				
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
		
	function modif_lieu() {
		$titre = "lieu modifié !" ;
		
		$geocodeur = new geocodeur() ;
		
		$lieu_id = $_POST['lieu_id'] ;
		$type_rep = $_POST['type_rep'] ;
		$adresse = $_POST['adresse'] ;
		$longitude = $_POST['longitude'] ;
		$latitude = $_POST['latitude'] ;
		$date = $_POST['date'] ;
		$theme_id = $_POST['theme_id']  ;
		$new_theme = $_POST['new_theme'] ;
		$description = $_POST['description'] ;
		$icone = $_POST['icone'] ;
		$nom_lieu = $_POST['nom_lieu'] ;
		
		if ($theme_id == 'nouveau'){	
		
			unset($insert) ;
			$insert = array() ;
			$insert['intitule'] = $new_theme ;
			
			//test de la non existence			
			$this->db->where('intitule', $new_theme) ;
			$query = $this->db->get('themes') ;	
			if ($query->num_rows()<1){				
				//ajout du thème à la bdd
				$this->db->insert('themes', $insert) ;
				
				//récupération de l'id du thème
				$this->db->where('intitule', $new_theme) ;
				$query = $this->db->get('themes') ;	
			}
			
			foreach($query->result() as $row){
				$theme_id = $row->id ;
			}
		}
		
		//récupération des données manquantes
		if ($type_rep == 'coord') {
			$adresse = $geocodeur->trouver_adresse(0, 0) ;
		}else{
			$coord = $geocodeur->trouver_coordonnees($adresse) ;
			$longitude = $coord['longitude'] ;
			$latitude= $coord['latitude'] ;
		}
				
		//arrangement de la date
		sscanf($date, "%d/%d/%d", $m, $d, $y) ;
		$date = mktime(0, 0, 0, $m, $d, $y) ; 
		$date = date("Y-m-d h:i:s", $date );
				
		//préparation deu tuple à insérer
		unset($insert) ;
		$insert['longitude'] = $longitude ;
		$insert['latitude'] = $latitude ;
		$insert['description'] = $description ;
		$insert['adresse'] = $adresse ;
		$insert['theme_id'] = $theme_id ;
		$insert['date'] = $date ;
		$insert['numero'] = "0" ;
		$insert['icone_id'] = $icone ;
		$insert['nom_lieu'] = $nom_lieu ;
				
		$this->db->where('id', $lieu_id) ;
		$this->db->update('lieux', $insert) ;
		
		$contenu = "<p><tab/>L'adresse ".$adresse.", de longitude ".$longitude." et de latitude ".$latitude." a été modifiée sous la description suivante :</br>".$description."<br/></p>" ;
			
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
		$this->generer_xml();

	}
	

	
	
	function generer_xml()
	{
			$connexion=mysql_connect("nemesis.rezel.net","inf347bubu", "premiermdp");
			if (!$connexion) {die('Erreur 1 : ' . mysql_error());}
			  
			$db_select = mysql_select_db("inf347bubu",$connexion);
			if (!$db_select) {die ('Erreur 2 : ' . mysql_error());}

			// On récupère les coordonnées longitude, latitude à partir de l'adresse que l'on trouve dans la base de données
			if (!defined('MAPS_HOST')) {define("MAPS_HOST", "maps.google.com");}
			//if (!defined('KEY')) {define("KEY", "ABQIAAAAY-q0TBl6cUmNg-7z-UZojBQl9v6CtpIBiba4Fq0QckbOYVyOghQdVNYKeND5BnG5wKzgvimfXlNF4g");}
			if (!defined('KEY')) {define("KEY", "ABQIAAAAY-q0TBl6cUmNg-7z-UZojBQLsXJd6tHT1uLHKrptpxW9n5rWSRRToqAqq3ImsBvzobV0kSNWMJ9aQg");}
			
			$query = "SELECT * from lieux WHERE 1";
			$result = mysql_query($query);
			if (!$result) {die("Invalid query: " . mysql_error());}
			$delay = 0;
			$base_url = "http://" . MAPS_HOST . "/maps/geo?output=xml&oe=utf-8" . "&key=" . KEY;
			//http://127.0.0.1/blog347/divers/proxy.php?yws_path=
			
			while ($row = @mysql_fetch_assoc($result)) 
			{
				$geocode_pending = true;

				while ($geocode_pending) 
				{
					$adresse = $row['adresse'];
					$id = $row['id'];
					$request_url = $base_url . "&q=" . urlencode($adresse);
					$xml = simplexml_load_file($request_url) or die("url not loading");
						

				    $status = $xml->Response->Status->code;
					if (strcmp($status, "200") == 0) 
						{
							// Successful geocode
							$geocode_pending = false;
							$coordinates = $xml->Response->Placemark->Point->coordinates;
							$coordinatesSplit = split(",", $coordinates);
							
							// Format: Longitude, Latitude, Altitude
							$lat = $coordinatesSplit[1];
							$lng = $coordinatesSplit[0];

							$query = sprintf("UPDATE lieux " .
									" SET latitude = '%s', longitude = '%s' " .
									" WHERE id = '%s' LIMIT 1;",
					        mysql_real_escape_string($lat),
							mysql_real_escape_string($lng),
							mysql_real_escape_string($id));
				  
							$update_result = mysql_query($query);
							if (!$update_result) {die("Invalid query: " . mysql_error());}
							
						} 
					
					else if (strcmp($status, "620") == 0) {$delay += 100000;} 
					else {
							// failure to geocode
							$geocode_pending = false;
							//echo "Address " . $address . " failed to geocoded. ";
							//echo "Received status " . $status . "\n";
							echo "Failed to geocoded".$adresse."<br />";
						}
					 
					usleep($delay);
				}
			}
			
			
			// On crée un fichier XML contenant tous les lieux
			$path = "xml/tous.xml";
			$requete = "SELECT lieux.id, lieux.description, lieux.latitude, lieux.longitude, themes.intitule, lieux.date, lieux.adresse, lieux.nom_lieu, icones.icone FROM themes, lieux, icones WHERE lieux.theme_id = themes.id AND lieux.icone_id = icones.id ORDER BY lieux.date";
			$res = $this->queryToXmlTous($requete,$path);
			
			
			// On crée autant de fichier XML qu'il y a de thème différent
			$query = "SELECT * FROM themes";
			$result = mysql_query($query) or die (mysql_error());
			
			while ($row = @mysql_fetch_array($result))
				{
					$path = "xml/".$row['intitule'].".xml";
					$requete = "SELECT lieux.id, lieux.description, lieux.latitude, lieux.longitude, themes.intitule, lieux.date, lieux.adresse, icones.icone FROM lieux, themes, icones WHERE lieux.theme_id = ".$row['id']." AND themes.id = ".$row['id']." AND icones.id = lieux.icone_id ORDER BY lieux.numero";
					$res = $this->queryToXml($requete,$path);
				}	

			$titre = "Action effectuée";
			$contenu = "Les fichiers XML ont été mis à jour";
			$data['billets']['0']['titre'] = $titre ;
			$data['billets']['0']['contenu'] = $contenu ;
			$this->load->view('billet_ajax_view', $data) ;
	}
	

	
	function queryToXmlTous($query,$path)
		{
				 $result = mysql_query($query) or die (mysql_error());
				 $xmlstring = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n";
				 $xmlstring.= "<markers>\n";
			  
				 while ($row = @mysql_fetch_array($result))
					{ 
						  $xmlstring .="\t<marker ";
						  $xmlstring .='id="' . $row['id'] . '" ';

						  $xmlstring .='description="' . $this->cherche($row ['description']) . '" ';
						  $xmlstring .='latitude="' . $row['latitude'] . '" ';
						  $xmlstring .='longitude="' . $row['longitude'] . '" ';
						  $xmlstring .='intitule="' . $row['intitule'] . '" ';
						  $xmlstring .='date="' . $row['date'] . '" ';
						  $xmlstring .='adresse="' . $this->cherche($row['adresse']) . '" ';
						  $xmlstring .='icone="' . $this->cherche($row['icone']) . '" ';
						  $xmlstring .='nom="' . $this->cherche($row['nom_lieu']) . '" ';

						  $xmlstring .="/>\n";
					}

				 $xmlstring.= "</markers>";
				 mysql_free_result($result);
				 if (!$fichier = fopen($path,"w+")) {echo "Echec de l'ouverture du fichier";}
				 else
					{
						fputs($fichier, "$xmlstring");
						fclose($fichier);
					}
		}
	
	
	function queryToXml($query,$path)
		{
				 $result = mysql_query($query) or die (mysql_error());
				 $xmlstring = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n";
				 $xmlstring.= "<markers>\n";
			  
				 while ($row = @mysql_fetch_array($result))
					{
						 
						  $xmlstring .="\t<marker ";
						  $xmlstring .='id="' . $row['id'] . '" ';
						  $xmlstring .='description="' . $this->cherche($row ['description']) . '" ';
						  $xmlstring .='latitude="' . $row['latitude'] . '" ';
						  $xmlstring .='longitude="' . $row['longitude'] . '" ';
						  $xmlstring .='intitule="' . $row['intitule'] . '" ';
						  $xmlstring .='date="' . $row['date'] . '" ';
						  $xmlstring .='adresse="' . $this->cherche($row['adresse']) . '" ';
						  $xmlstring .='icone="' . $this->cherche($row['icone']) . '" ';
						  $xmlstring .="/>\n";
					}

				 $xmlstring.= "</markers>";
				 mysql_free_result($result);
				 if (!$fichier = fopen($path,"w+")) {echo "Echec de l'ouverture du fichier";}
				 else
					{
						fputs($fichier, "$xmlstring");
						fclose($fichier);
					}
		}
		
	
	function cherche($htmlStr)
			{
				$xmlStr=str_replace('<','&lt;',$htmlStr); 
				$xmlStr=str_replace('>','&gt;',$xmlStr); 
				$xmlStr=str_replace('"','&quot;',$xmlStr); 
				$xmlStr=str_replace("'",'&#39;',$xmlStr); 
				$xmlStr=str_replace("&",'&amp;',$xmlStr); 
				return $xmlStr; 
			}
		
	
	
/*************************************************************************************************************************
									Admin articles
*************************************************************************************************************************/
	function add_article(){

		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}else{		
			//liste des thèmes
			$liste_themes = $this->db->get('themes') ;		
			$liste_lieux = $this->db->get('lieux') ;		
			
			$titre = "Ecrire un article" ;
			$contenu = "<form method='post' action='' width='300'>
										<center>
										<textarea id='titre_article' cols='72' rows='1'>Le titre de l'article.</textarea>
										<textarea name='content-article' id='content_article' class='mceEditor' cols='72' rows='50'>le texte de l'article, à modifier. Bonne rédaction !</textarea>
										<select name=\"theme_article\" style='width:30em' id=\"theme_article\" >";
										foreach ($liste_themes->result() as $theme){
													$contenu .="<option value=".$theme->id.">".$theme->intitule."</option>";		
										}
										$contenu .="<option selected value='nouveau'>nouveau thème</option>";	
										$contenu .="</select><br />
										<textarea cols='47' rows='1' name=\"description\" id=\"nouveautheme_article\">nom du thème</textarea><br/>
										<select name=\"lieu_article\" style='width:30em' id=\"lieu_article\" >";
										foreach ($liste_lieux->result() as $lieu){
													$contenu .="<option value=".$lieu->id.">".$lieu->nom_lieu."</option>";		
										}
										$contenu .="<option selected value='nouveau'>nouveau lieu</option>";	
										$contenu .="</select><br />										
										<input type='button' value='Enregistrer' id='add_l_article'/>
										</center>
									</form>" ;		
		}
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
	
	function re_option_lieu(){
		$liste_lieux = $this->db->get('lieux') ;	
		$nom_lieu = $_POST['nom_lieu'] ;
		unset($options) ;
		$options = "" ;
		foreach ($liste_lieux->result() as $lieu){
													$options .= "<option " ;
													if ($lieu->nom_lieu == $nom_lieu){
														$options .= " selected " ;
														}
													$options .= "value=".$lieu->id.">".$lieu->nom_lieu."</option>";		
		}
		echo $options ;
	}
	
	function add_l_article(){
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}else{	
			unset($insert) ;
			$insert['titre'] = $_POST['titre_article']  ;
			$insert['contenu'] = $_POST['contenu_article'] ;
			$insert['lieu_id'] = $_POST['lieu_id'] ;
			$insert['theme_id'] = $_POST['theme_id'] ;
			$insert['date'] = date("Y-m-d h:i:s") ;
			$insert['auteur_id'] =  $this->session->userdata('auteur_id') ;
			
			if ($insert['theme_id'] == 'nouveau'){			
				unset($rep) ;
				unset($query) ;
				$rep['intitule'] = $_POST['new_theme'] ;			
				//test de la non existence			
				$this->db->where($rep) ;
				$query = $this->db->get('themes') ;	
				if ($query->num_rows()<1){				
					//ajout du thème à la bdd
					$this->db->insert('themes', $rep) ;				
				}				
				$this->db->where($rep) ;
				$query = $this->db->get('themes') ;	
				$theme_id = $query->row()->id ;
				$insert['theme_id'] = $theme_id ;
			}
			
			$this->db->insert('articles', $insert) ;
		
			$titre = "Article ajouté" ;
			$contenu = "L'article ".$insert['titre']." a bien été enregistré ".$this->session->userdata('login') ;		
		}
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}		
	
       //choix de l'article pour modifier un commentaire
       function select_article(){
               if ( !$this->session->userdata('login') ){
                       $titre = "Vous devez vous identifier" ;
                       $contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
               }else{

                       $titre = "Modérer un commentaire" ;

                       $liste = $this->db->get('articles') ;
                       $contenu =  "<p>Veuillez l'article auquel est rattaché le commentaire que vous voulez modifier.<br/>
                       <form method=\"post\" name='select_article_commentaire' id ='choix_lieu'>
                               <center>
                                               <select name=\"choix_article_commentaire\" style='width:30em' id=\"choix_article_id\" >";
                                                       foreach ($liste->result() as $article){
                                                                               $contenu .="<option value=".$article->id.">".$article->titre."</option>";
                                                      }
                                                       $contenu .="</select><br />
                                               <input type=\"button\" value=\"Choisir\" id=\"bouton_choix_article\"/>
                               </center>
                       </form>
                       </p>";

               }
					 $data['billets']['0']['titre'] = $titre ;
					 $data['billets']['0']['contenu'] = $contenu ;
           $this->load->view('billet_ajax_view', $data) ;
       }
			 
	function modif_article(){

		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}else{		
			$id = $_POST['article_id'] ;
			unset($where) ;
			$where['id'] = $id ; 
			$this->db->where($where) ;
			$articles = $this->db->get('articles') ;
			$article = $articles->row() ;
			
			//liste des thèmes
			$liste_themes = $this->db->get('themes') ;		
			$liste_lieux = $this->db->get('lieux') ;		
			
			$titre = "Ecrire un article" ;
			$contenu = "<form method='post' action='' width='300'>
										<center>
										<textarea id='titre_article' cols='72' rows='1'>".$article->titre."</textarea>
										<textarea name='content-article' id='content_article' class='mceEditor' cols='72' rows='50'>".$article->contenu."</textarea>
										<select name=\"theme_article\" style='width:30em' id=\"theme_article\" >";
										foreach ($liste_themes->result() as $theme){
													$contenu .="<option" ;
													if ($theme->id == $article->theme_id){
														$contenu .= " selected" ;
														$intitule = $theme->intitule ;
														}
													$contenu .= " value=".$theme->id.">".$theme->intitule."</option>";	
										}
										$contenu .="<option value='nouveau'>nouveau thème</option>";	
										$contenu .="</select><br />
										<textarea cols='47' rows='1' name=\"description\" id=\"nouveautheme_article\">".$intitule."</textarea><br/>
										<select name=\"lieu_article\" style='width:30em' id=\"lieu_article\" >";
										foreach ($liste_lieux->result() as $lieu){
													$contenu .="<option" ; 
													if ($lieu->id == $article->lieu_id){
														$contenu .= " selected" ;
														}		
													$contenu .= " value=".$lieu->id.">".$lieu->nom_lieu."</option>";
										}
										$contenu .="<option value='nouveau'>nouveau lieu</option>";	
										$contenu .="</select><br />									
										<input type='hidden' value='".$article->id."' id='article_id'/>									
										<input type='button' value='Enregistrer' id='bouton_enregistrer_modif_article'/>
										</center>
									</form>" ;		
		}
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
	
		
	function enregistrer_modif_article(){
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}else{	
			unset($insert) ;unset($where) ;
			$where['id'] = $_POST['id']  ;
			$insert['titre'] = $_POST['titre_article']  ;
			$insert['contenu'] = $_POST['contenu_article']."<br/>Modifié le ".date("Y-m-d h:i:s")." par ".$this->session->userdata('login')  ;
			$insert['lieu_id'] = $_POST['lieu_id'] ;
			$insert['theme_id'] = $_POST['theme_id'] ;
		
			if ($insert['theme_id'] == 'nouveau'){			
				unset($rep) ;
				unset($query) ;
				$rep['intitule'] = $_POST['new_theme'] ;			
				//test de la non existence			
				$this->db->where($rep) ;
				$query = $this->db->get('themes') ;	
				if ($query->num_rows()<1){				
					//ajout du thème à la bdd
					$this->db->insert('themes', $rep) ;				
				}				
				$this->db->where($rep) ;
				$query = $this->db->get('themes') ;	
				$theme_id = $query->row()->id ;
				$insert['theme_id'] = $theme_id ;
			}
				
			$this->db->where($where) ;
			$this->db->update('articles', $insert) ;
		
			$titre = "Article ajouté" ;
			$contenu = "L'article ".$insert['titre']." a bien été enregistré ".$this->session->userdata('login') ;		
		}
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}		
	
				 //choix du commentaire à éditer
				 function select_commentaire(){
               if ( !$this->session->userdata('login') ){
                       $titre = "Vous devez vous identifier" ;
                       $contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
               }else{
                       $article_id = $_POST['article_id'] ;
                       $titre = "Modérer un commentaire" ;

                       $this->db->where('article_id = '.$article_id) ;
                       $liste = $this->db->get('commentaires') ;
                       if ($liste->num_rows() >0){
                               $contenu =  "<p>Choississez le commentaire à modifier.<br/>
                               <form method=\"post\" name='select_commentaire' id ='select_commentaire'>
                                       <center>
                                                       <select name=\"choix_commentaire\" style='width:30em' id=\"choix_commentaire\" >";
                                                               foreach ($liste->result() as $commentaire){
                                                                                       $contenu .="<option value=".$commentaire->id.">".$commentaire->pseudo." le ".$commentaire->date."</option>";
                                                               }
                                                               $contenu .="</select><br />
                                       </center>
                               </form>
                               </p>";
                       }else{
                               $contenu = "désolé mais il n'y a pas de commentaires sur cet article" ;
                       }

               }
               $data['billets']['0']['titre'] = $titre ;
               $data['billets']['0']['contenu'] = $contenu ;
							 $data['billets']['0']['liens'] = "<a href='javascript:void(0)' id='retour_choix_article' \">Retour au choix de l'article</a>" ;
               $this->load->view('billet_ajax_view', $data) ;
       }

       //édition du commentaire
       function edit_commentaire_article(){
               if ( !$this->session->userdata('login') ){
                       $titre = "Vous devez vous identifier" ;
                       $contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
               }else{
                       if ($_POST['commentaire_id'] != "undefined"){
                               $commentaire_id = $_POST['commentaire_id'] ;
                               $titre = "Modérer le commentaire" ;

                               $this->db->where('id = '.$commentaire_id) ;
                               $liste = $this->db->get('commentaires') ;
                               $contenu =  "Modification du commentaire :<br/>
                               <form method=\"post\" name='modif_commentaire' id ='modif_commentaire'>
                                       <center>" ;
                                                               $commentaire = $liste->row() ;
                                                               $contenu .= "<textarea cols='47' rows='5' name=\"texte\" id=\"contenu_commentaire1\">".$commentaire->texte."</textarea><br/>" ;
                                                               $contenu .= "<input type='hidden' id='contenu_commentaire2' rows='2' cols='70' value='Modéré le ".date("Y-m-d h:i:s")." par ".$this->session->userdata('login')."' /><br />" ;
                                                               $contenu .="<input type=\"button\" value=\"Modifier\" id=\"enregistrer_modif_commentaire\"/>
                                       </center>
                               </form>
                               ";
               }else{
                       $titre = "pas de commentaires" ;
                       $contenu ="" ;
               }

               }
               $data['billets']['1']['titre'] = $titre ;
               $data['billets']['1']['contenu'] = $contenu ;
               $this->load->view('billet_ajax_view', $data) ;
       }

       //commentaire édité !
       function edited_commentaire(){
               if ( !$this->session->userdata('login') ){
                       $titre = "Vous devez vous identifier" ;
                       $contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
               }else{
                       $insert['texte'] = $_POST['contenu_commentaire'] ;
                       $commentaire_id = $_POST['commentaire_id'] ;

                       $this->db->where('id', $commentaire_id);
                       $this->db->update('commentaires', $insert);
                       $this->db->where('id', $commentaire_id);
                       $commentaire = $this->db->get('commentaires')->row() ;

                       $titre = "Commentaire de ".$commentaire->pseudo." du ".$commentaire->date." modéré" ;
                       $contenu = $commentaire->texte ;

               }
							 $data['billets']['1']['titre'] = $titre ;
							 $data['billets']['1']['contenu'] = $contenu ;
               $this->load->view('billet_ajax_view', $data) ;
       }
	
/*************************************************************************************************************************
									ADMIN VIDEOS
*************************************************************************************************************************/
	

/**************
Suppression
***************/
	
	function supp_video() {	
		$titre =  "Suppression d'une vidéo"	;
			
		$this->db->order_by('nom_video','asc');
		$liste = $this->db->get('videos') ;			
		
		$contenu =  "<p>Veuillez sélectionner la vidéo à supprimer<br/>
			<form method=\"post\" name='supp_la_video' id ='supp_video'>
				<center>
						<select name=\"type_rep\" style='width:30em' id=\"video\" >";
							foreach ($liste->result() as $video){
										$contenu .="<option value=".$video->id."><h5>".$video->nom_video."</h5></option>";		
							}
							$contenu .="<input type=\"button\" value=\"Supprimer\" id=\"bouton_supp_video\"/>
				</center>
			</form>
			</p>";
						
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
	
	
	
	function supprime_video() {
		$titre = "Vidéo supprimée !" ;
		
		$video_id = $_POST['video_id'] ;
										
		unset($insert) ;				
		$insert['id'] = $video_id ;	
		$query = $this->db->get_where('videos', $insert, "1", "0");
		$video = $query->row() ;
						
		$this->db->delete('videos', $insert) ;
		
		$contenu = "<p><tab/>La vidéo '".$video->nom_video."' a été supprimée.";
			
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}	
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
	
	
	
	
/**************
Ajout
***************/
	
	
	function add_video(){

		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}
		
		else
		{		
			//liste des thèmes
			$liste_themes = $this->db->get('themes');		
			$liste_lieux = $this->db->get('lieux');
			$date = date("m/d/Y");
			
			$titre = "Ajouter une vidéo" ;
			$contenu = "<center><form method='post' name='upload_video' width='300' id='form_add_video' action='admin/add_la_video' enctype='multipart/form-data'>
										<textarea name='nom_video' id='nom_video' cols='72' rows='1'>Titre</textarea><br/><br/>
										<input type='file' name='userfile' size='81px' /> <br/><br/>										
										<textarea name='description_video' id='description_video' cols='72' rows='5'>Description</textarea><br/><br/>

										<input type=\"date\" name=\"calendrier\" id='calendrier' value=".$date." SIZE=10 readonly='true'/><a href=\"javascript:void(0)\" name=\"choix_date\" id='choix_date2'>(choisir la date)</A><br/><br/>
										<select name=\"theme_video\" style='width:30em' id=\"theme_video\" >";
										foreach ($liste_themes->result() as $theme){
													$contenu .="<option value=".$theme->id.">".$theme->intitule."</option>";		
										}
										$contenu .="<option selected value='nouveau'>Nouveau thème...</option>";	
										$contenu .="</select><br />
										<textarea cols='47' rows='1' name=\"description\" id=\"nouveautheme_video\">Nom du theme</textarea><br/>
										<select name=\"lieu_video\" style='width:30em' id=\"lieu_article\" >";
										foreach ($liste_lieux->result() as $lieu){
													$contenu .="<option value=".$lieu->id.">".$lieu->nom_lieu."</option>";		
										}
										$contenu .="<option selected value='nouveau'>Nouveau lieu...</option>";	
										$contenu .="</select><br />										
										<input type='button' value='Envoyer' id='envoyer_video'/>	
									</form></center>" ;		
		}
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}
	
	
	
	
	function add_la_video()
	{
	
		if(count($_FILES)==0) {
			$data = $this->gen_base_data();
			
			$data['billets'] = array();
			$data['billets'][0]['titre'] = "Gestion des Vidéos";
			$data['billets'][0]['contenu'] = "Vidéo INCORRECTE. Impossible de l'uploader. Bug obscur et abscond -,..,-";
			
			$this->load->view('admin_view',$data);
			return false;
		}

		
		if ( $this->session->userdata('login') ) {
			echo "<img src='../../images/loading.gif'/><br/>Upload en cours de la vidéo sur Youtube.<br/>Cette opération peut être longue...<br/><br/>\n";


			unset($insert) ;
			
			require_once './PHPTube/phptube.php';
			
			$date = $_POST['calendrier'];
			sscanf($date, "%d/%d/%d", $m, $d, $y);
			$date = mktime(0, 0, 0, $m, $d, $y); 
			$date = date("Y-m-d h:i:s", $date);
			$insert['date'] = $date;
			
			$insert['auteur_id'] =  $this->session->userdata('auteur_id');
			
			$insert['theme_id'] = $_POST['theme_video'];
			
			$insert['nom_video'] = $_POST['nom_video'];
			
			$insert['description_video'] = $_POST['description_video'];
			
			$insert['lieu_id'] = $_POST['lieu_video'];

			if ($insert['theme_id'] == 'nouveau'){			
				unset($rep) ;
				$rep['intitule'] = $_POST['description'] ;			
				//test de la non existence			
				$this->db->where('intitule', $rep['intitule']) ;
				$query = $this->db->get('themes') ;	
				if ($query->num_rows()<1){				
					//ajout du thème à la bdd
					$this->db->insert('themes', $rep) ;				
					//récupération de l'id du thème
					$this->db->where('intitule', $rep['intitule']) ;
					$query = $this->db->get('themes') ;	
				}			
				foreach($query->result() as $row){
					$insert['theme_id'] = $row->id ;
				}
			}
 
			$config['upload_path'] = './videos/';
			$config['allowed_types'] = 'mov|mpg|avi|wmv|mp4';
			$config['max_size'] = '0';
			$config['max_width'] = '0';
			$config['max_height'] = '0';
			$config['overwrite'] = true;
			$this->load->library('upload', $config);
			
			//echo "ok";
			
			//echo "<br/>\n";
			//print_r ($config);
			$test_upload = $this->upload->do_upload('userfile');
			
			if ($test_upload)
			{
				$tube = new PHPTube ("inf347gr1","mdpinf347", true);
				
				//echo '$tube = '.print_r($tube)."<br/>\n";
				
				$pointeur=opendir('./videos/');
				$insert['adresse'] = '';
				while ($entree = readdir($pointeur))
				{
					//if ($entree != '.' && $entree !='..' && substr($entree,0,1)!='.')
					if($entree == $_FILES['userfile']['name'])
					{
						//echo "Vidéo trouvée <br/>\n";
						$adresse = $tube->upload('./videos/'.$entree, $_POST['nom_video'], "souvenirs voyage blog inf347 groupe1", $_POST['description_video'], 22, "FR",true,true,true);
						//echo "ok2";
						$insert['adresse'] = $adresse;
						//$insert['adresse'] = $tube->upload('./videos/'.$entree, $_POST['nom_video'], "souvenirs voyage blog inf347 groupe1", $_POST['description_video'], 22, "FR");
						unlink('./videos/'.$entree);
					}
				}

				if ($insert['adresse'] != '') {
					$this->db->insert('videos', $insert);
				}
				
			}
			else {
				echo "upload pas bon\n";
				$data = $this->gen_base_data();
				
				$data['billets'] = array();
				$data['billets'][0]['titre'] = "Gestion des Vidéos";
				$data['billets'][0]['contenu'] = $this->upload->display_errors();
				
				$this->load->view('admin_view',$data);
				return false;
			}
			
		}
		else {
			echo "pas identifié !";
		}
		redirect('admin', 'refresh');
	}
	
	
	
/**************
Edition
***************/



	function selection_edit_video()
	{
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}
		
		else
		{	
			$this->db->order_by('nom_video','asc');
			$liste_videos = $this->db->get('videos');
			$titre = "Sélection de la vidéo";
			$contenu = "Sélectionnez la vidéo que vous souhaitez modifier :<br/><br/>";
			$contenu .= "<center><form method='post' action='' width='300' id='select_video'><select name='theme_article' style='width:30em' id='id_video'>";
			
			foreach ($liste_videos->result() as $video){
				$contenu .="<option value=".$video->id.">".$video->nom_video."</option>";
			}
			
			$contenu .= "<br/><br/><input type='button' value='Sélectionner' id='selection_video'/>";
			
			$contenu .= "</select></form></center>";
		
		}
	
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;		
		$this->load->view('billet_ajax_view', $data) ;	
	}
	
	
	
	function form_edit_video()
	{
		if ( !$this->session->userdata('login') ){
		$titre = "Vous devez vous identifier" ;
		$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}
	
		else
		{

		$video_id = $_POST['video_id'];
		$this->db->where('id',$video_id);
		$query = $this->db->get('videos');
		$video = $query->row();
		$liste_themes = $this->db->get('themes');		
		$liste_lieux = $this->db->get('lieux');
		
		$date = $video->date;
		$y = strtok($date, " -");
		$m = strtok(" -");
		$d = strtok(" -");
		$date = $m.'/'.$d.'/'.$y;
		
		$titre = "Modifier la vidéo vidéo" ;
		$contenu = "<center><form method='post' action='' width='300' id='add_video'>
										<input type=\"hidden\" name=\"video_id\" id='video' value='".$video->id."' SIZE=0 readonly='true'/>
										<textarea id='nom_video' cols='72' rows='1'>".$video->nom_video."</textarea><br/><br/>
										<textarea name='description_video' id='description_video' cols='72' rows='5'>".$video->description_video."</textarea><br/><br/>
										<input type=\"date\" name=\"calendrier\" id='calendrier' value=".$date." SIZE=10 readonly='true'/><a href=\"javascript:void(0)\" name=\"choix_date\" id='choix_date2'>(choisir la date)</A><br/><br/>
										<select name=\"theme_article\" style='width:30em' id=\"theme_video\" >";
										
										foreach ($liste_themes->result() as $theme){
											$contenu .="<option";
											if ($theme->id == $video->theme_id){
											$contenu .= " selected" ;
											$the_theme = $theme->intitule ;
											}
											$contenu .= " value='".$theme->id."'>".$theme->intitule."</option>";												
										}										
										$contenu .="<option value='nouveau'>Nouveau thème...</option>";	
										$contenu .="</select><br />
										
										
										<textarea cols='47' rows='1' name=\"description\" id='nouveautheme_video'>".$the_theme."</textarea><br/><br/>
										<select name=\"lieu_video\" style='width:30em' id=\"lieu_article\" >";
										
										foreach ($liste_lieux->result() as $lieu){
											$contenu .="<option";
											if ($lieu->id == $video->lieu_id){
											$contenu .= " selected" ;
											$the_lieu = $lieu->nom_lieu ;
											}
											$contenu .= " value='".$lieu->id."'>".$lieu->nom_lieu."</option>";												
										}
										$contenu .="<option value='nouveau'>Nouveau lieu...</option>";	
										$contenu .="</select><br />										
										<input type='button' value='Enregistrer' id='edit_la_video'/>
									</form></center>" ;
		
		}		
			$data['billets']['0']['titre'] = $titre ;
			$data['billets']['0']['contenu'] = $contenu ;		
			$this->load->view('billet_ajax_view', $data) ;
	}
	
	
	function edit_la_video()
	{
		if ( !$this->session->userdata('login') ){
			$titre = "Vous devez vous identifier" ;
			$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;
		}else{	
			unset($insert) ;
			
			$date = $_POST['date_video'];
			sscanf($date, "%d/%d/%d", $m, $d, $y);
			$date = mktime(0, 0, 0, $m, $d, $y); 
			$date = date("Y-m-d h:i:s", $date);
			
			$this->db->select('videos.adresse, videos.auteur_id');
			$this->db->where('videos.id',$_POST['video_id']);
			$this->db->join('auteurs', 'auteurs.id = videos.auteur_id');
			$requete = $this->db->get('videos');
			
			$insert['id'] = $_POST['video_id'];
			$insert['nom_video'] = $_POST['nom_video'];
			$insert['adresse'] = $requete->row()->adresse;
			$insert['description_video'] = $_POST['description_video'];
			$insert['lieu_id'] = $_POST['lieu_id'];
			$insert['theme_id'] = $_POST['theme_id'];
			$insert['auteur_id'] =  $requete->row()->auteur_id;
			$insert['date'] = $date;
			

			
			if ($insert['theme_id'] == 'nouveau'){			
				unset($rep) ;
				$rep['intitule'] = $_POST['new_theme'] ;			
				//test de la non existence			
				$this->db->where('intitule', $rep['intitule']) ;
				$query = $this->db->get('themes') ;	
				if ($query->num_rows()<1){				
					//ajout du thème à la bdd
					$this->db->insert('themes', $rep) ;				
					//récupération de l'id du thème
					$this->db->where('intitule', $rep['intitule']) ;
					$query = $this->db->get('themes') ;	
				}			
				foreach($query->result() as $row){
					$insert['theme_id'] = $row->id ;
				}
			}
				
			$this->db->where('id', $_POST['video_id']);
			$this->db->update('videos', $insert); 
		
			$titre = "Vidéo modifiée" ;
			$contenu = "La vidéo ".$_POST['nom_video']." a bien été modifiée.";		
		}
		
		$data['billets']['0']['titre'] = $titre ;
		$data['billets']['0']['contenu'] = $contenu ;
		$this->load->view('billet_ajax_view', $data) ;
	}	
	
	
	
	
/***********************************************************************************************************************
************************                                ADMIN GALERIE
**************************************************************************************************************************/

	function est_identifie() {
		if($this->session->userdata('login'))
			echo "true";
		else
			echo "false";
	}

	function degage_utilisateur_pas_logge() {
		
		$data = $this->gen_base_data();
		
		$titre = "Vous devez vous identifier" ;
		$contenu = "Certaines parties de ce blog nécessitent d'être un administrateur du site pour y accéder, merci de vous identifier si cela est le cas." ;

		$data['billets'][0]['titre'] = $titre ;
		$data['billets'][0]['contenu'] = $contenu ;
		
		$data['billets'][0]['contenu'] .=  "<p>Bonjour,<br/>Vous n'êtes pas identifié,vous devez l'être pour modifier le contenu de ce blog.<br/>
				<form method=\"post\" id ='ident'>
					<center>
						<input type=\"text\" name=\"pseudo\" value=\"pseudo\" id=\"pseudo\"/><br/>
						<input type=\"password\" name=\"pass\" id=\"pass\" /><br/>
						<input type=\"button\" value=\"Valider\" id=\"bouton_try2log\"/>
					</center>
				</form>
				</p>";		
		
		
		$this->load->view('admin_view', $data) ;		
	}
	
	
	function gen_liste_lieux_themes() {
		$res = "";
	
		$res .= $this->gen_liste_lieux_return_variable();
		$res .= "&nbsp;&nbsp;&nbsp;\n";
		$res .= $this->gen_liste_themes_return_variable();
		
		echo $res;
	}
	
	function gen_liste_lieux_themes_return_variable() {
		$res = "";
	
		$res .= $this->gen_liste_lieux_return_variable();
		$res .= "&nbsp;&nbsp;&nbsp;\n";
		$res .= $this->gen_liste_themes_return_variable();
		
		return $res;
	}
	
	function gen_liste_lieux() {
		echo $this->gen_liste_lieux_return_variable();
	}
	
	function gen_liste_themes() {
		echo $this->gen_liste_themes_return_variable();
	}
	
	function gen_liste_lieux_return_variable() {
		$res = "";
		
		$res .= "<select name=\"choix_lieu_image\" style='width:15em'>";
		$res .= "<option value='-1' selected>Sélectionnez le lieu</option>\n";
		$liste_lieux = $this->db->get('lieux');
		foreach ($liste_lieux->result() as $lieu){
					$res .="<option value=".$lieu->id.">".$lieu->nom_lieu."</option>";
		}
		$res .= "</select>\n";		
		
		return $res;	
	}
	
	function gen_liste_themes_return_variable() {
		$res = "";
		
		$res .= "<select name=\"choix_theme_image\" style='width:15em'>\n";
		$res .= "<option value='-1' selected>Sélectionnez le thème</option>\n";
		$liste_themes = $this->db->get('themes');
		foreach($liste_themes->result() as $theme) {
			$res .="<option value=".$theme->id.">".$theme->intitule."</option>";
		}
		$res .= "</select>\n";		
		
		return $res;	
	}
	
	function gen_liste_photos_gestion() {
		
		if(isset($_POST['id_lieu']))
			$id_lieu = $_POST['id_lieu'];
		else
			$id_lieu = -1;
			
		if(isset($_POST['id_theme']))
			$id_theme = $_POST['id_theme'];
		else
			$id_theme = -1;
		
		if($id_lieu != -1) 
			$this->db->where('lieu_id',$id_lieu);
		
		if($id_theme != -1)
			$this->db->where('theme_id',$id_theme);
		
		$this->db->order_by('date','desc');
		$this->db->order_by('lieu_id','asc');
		$this->db->order_by('theme_id','asc');
		$liste_photos = $this->db->get('photos');
		$res = "";
		$nbr = 0;
		
		$res .= "<table cellspacing=0 cellpadding=5 border=0 style=\"border: 1px outset #2D4789; margin: 10px; align:center;\"> \n";
		$res .= "<tr>\n";
		foreach($liste_photos->result() as $photo) {
			$nbr++;
		
			$this->db->where('id',$photo->auteur_id);
			$nom_auteur = $this->db->get('auteurs');
			$nom_auteur = ($nom_auteur->result());
			$nom_auteur = $nom_auteur[0]->nom;
		
			$res .= "<td><a href='".base_url().$photo->chemin."' class='galerie_1' title=\"".$photo->description."&nbsp;&nbsp;&nbsp;Photo prise par ".$nom_auteur."&nbsp;";
			$res.= "le ".substr($photo->date,0,10)."\">\n";
			$res .= "<img src='".base_url().$photo->sample."'/>\n</a>\n";
			$res .= "</td>\n";
			
			$nbr++;
			if($nbr%5 == 0) {
				$res .= "</tr>\n<tr>\n";
			}
		}
		
		$res .= "</tr></table>\n";
		if($nbr == 0)
			$res = "";
		$res .= "<input type='button' value='ajouter des photos' id='ajouter_photos'/>\n";
		$res .= "<input type='hidden' name='id_lieu_image_selected' value='".$id_lieu."'/>\n";
		$res .= "<input type='hidden' name='id_theme_image_selected' value='".$id_theme."'/>\n";
		
		
		echo $res;
	}


	function choix_lieu_image() {
		
		$liste = $this->db->get('lieux');		
		
		$contenu =  "Veuillez sélectionner un lieu<br/>
						<select name=\"choix_lieu_image\" style='width:35em' id=\"lieu\" >";
							foreach ($liste->result() as $lieu){
										$contenu .="<option value=".$lieu->id.">".$lieu->adresse."</option>";		
							}
							//$contenu .="<input type=\"button\" value=\"\" id=\"bouton_choix_lieu\"/>\n";
						
		echo $contenu;
		return;
	}	
	
	function choix_theme_image() {
		$liste = $this->db->get('themes');		
		
		$contenu =  "Veuillez sélectionner le thème de la galerie<br/>
						<select name=\"choix_theme_image\" style='width:15em' id=\"theme\" >";
							foreach ($liste->result() as $theme){
										$contenu .="<option value=".$theme->id."><h5>".$theme->intitule."</option>";		
							}
						
	
		echo $contenu;
		return;		
	}

	
/***********************
**	Upload d'images 	**
************************/
	function upload_image() {

		$resultat = "";
		$data = array();
		$data = $this->gen_base_data();
		$data['upload_resultat'] = "";
		$data['base_url'] = base_url();
		
		$config['upload_path'] = './images/';
		$config['allowed_types'] = 'gif|jpg|png|bmp';
		$config['max_size'] = '2048';
		$config['max_width'] = '0';
		$config['max_height'] = '0';
		$config['overwrite'] = true;
		$this->load->library('upload', $config);

		for($i=1;$i<$_POST['max_champ'];$i++) {
			$nom_champ = "userfile_".$i;
			if (!$this->upload->do_upload($nom_champ))
				$data['upload_resultat'] .= $this->upload->display_errors().basename($_POST['hidden_'.$i])."<br/>";
			else {
				$nom_champ = "userfile_".$i;
				$path_tmp = "images/".basename($_POST['hidden_'.$i]);
				$path_tmp_sample = "images/apercus/apercu_".basename($_POST['hidden_'.$i]);			
				$this->creer_apercu(basename($_POST['hidden_'.$i]),75);

				//arrangement de la date
				$date = $_POST['calendrier'];
				sscanf($date, "%d/%d/%d", $m, $d, $y);
				$date = mktime(0, 0, 0, $m, $d, $y); 
				$date = date("Y-m-d h:i:s", $date );
				
				$lieu_id=$_POST['id_lieu_image'];
				$theme_id=$_POST['id_theme_image'];
				
				$description = $_POST['textfile_'.$i];
				
				$data_sql = array(	'chemin'=>$path_tmp,
									'description'=>$description,
									'auteur_id'=>$this->session->userdata['auteur_id'],
									'date' => $date,
									'sample' => $path_tmp_sample,
									'lieu_id' => $lieu_id,
									'theme_id' => $theme_id);
				
				
				//Pour éviter les doublons on cherche dans la base si l'image existe déjà.
				$this->db->where('chemin',$path_tmp);
				if($this->db->count_all_results('photos') ==0) {
					$this->db->insert('photos',$data_sql);
					$data['upload_resultat'] .= basename($_POST['hidden_'.$i])." uploadé avec succes<br/>\n";
					$this->genererlisteImage();
				}
				else {
					$data['upload_resultat'].=basename($_POST['hidden_'.$i])." existe déjà.<br/>\n";
				}
				unset($data_sql);
			}
		}
		
		$contenu = $this->gen_liste_lieux_themes_return_variable();
		$data['billets'] = array();
		$data['billets'][0]['titre'] = "Gestion des photos";
		$data['billets'][0]['contenu'] = $data['upload_resultat'];
		
		$this->load->view('admin_view',$data);

	}
	

	
	//pour que le bouton image de tiny_mce propose les bonnes images
	function genererlisteImage(){	
		$photos = $this->db->get('photos') ;
		
		$data = " \n" ;
		$data .= "var tinyMCEImageList = new Array(
						// Name, URL\n" ;			
		foreach ($photos->result() as $photo){
			$data .= "[\"".$photo->description."\",\"".base_url().$photo->chemin."\"],\n" ;
		}
		$data .= "[\"\",\"\"]);";
			
	}


	
	/*
	Attention : $img contient le nom complet de l'image d'origine tandis que $new_name ne doit contenir que le nom (sans l'extension) de l'image de destination.
	*/
	function creer_apercu($nom_img,$thumb_w) {
		
		
		// load image and get image size
		$chemin = base_url()."images/".$nom_img;
		$img = imagecreatefromjpeg($chemin);
		$width = imagesx( $img );
		$height = imagesy( $img );
		

		// calculate thumbnail size
		$new_width = $thumb_w;
		$new_height = floor( $height * ( $thumb_w / $width ) );		

		// create a new temporary image
		$tmp_img = imagecreatetruecolor( $new_width, $new_height );	 

		// copy and resize old image into new image
		$test = imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );		
		if(!$test) echo "Probleme lors de la creation + resize...<br/>\n";
		
		// save thumbnail into a file
		//$chemin_apercu = base_url()."images/apercus/apercu_".$nom_img;
		$chemin_apercu = "images/apercus/apercu_".$nom_img;
		imagejpeg( $tmp_img,$chemin_apercu);
	}








	
	
/*************************************************************************************************************************
									GEN_BASE_DATA
*************************************************************************************************************************/

	
	//Méthode qui génère les menus, les scripts javascripts et les css !
	function gen_base_data() {
		/*
		*	Mettre ici les script javascript à charger. par défaut, le path est base_url()/javascript/
		*/
		//Les trucs de base et les liens pour les menus
		$data['javascript'] = array('jquery.js','liens_smenu_admin.js','CalendarPopup.js');
		
		//pour le texte riche :
		array_push($data['javascript'],'tiny_mce/tiny_mce_src.js','tiny_mce/tiny_mce_init.js','tiny_mce/tiny_mce.js');
		
		//Pour les galerie d'images :
		array_push($data['javascript'],'galerie/jquery.lightbox.js','galerie/init_lightbox.js','CalendarPopup.js','galerie/admin_galerie.js');		
		
		/*
		*	Mettre ici les CSS àcharger. Le path par défaut est base_url()/css/
		*/	
		$data['css'] = array('blog.css','lightbox.css');
	
		$data['titreblog'] = "Souvenirs de voyage -- Administration";
		$data['menu'] = array("<a href=\"".base_url()."index.php/article\">Articles</a>");
		array_push($data['menu'],"<a href='".base_url()."index.php/galerie'>Photos</a>");
		array_push($data['menu'],"<a href=\"".base_url()."index.php/video\">Vidéos</a>");
		array_push($data['menu'],"<a href=\"".base_url()."index.php/carte\">Cartes</a>");


		$data['smenu']['Photos'] = array("<a href='javascript:void(0)' id='gerer_photo'>Gerer les galeries</a>");
		$data['smenu']['Videos'] = array("<a href='javascript:void(0)' id='add_video'>Ajouter</a>", "<a href='javascript:void(0)' id='mod_video'>Modifier</a>", "<a href='javascript:void(0)' id='rem_video'>Supprimer</a>");
		$data['smenu']['Articles'] = array("<a href='javascript:void(0)' id='add_article'>Ajouter</a>", "<a href='javascript:void(0)' id='mod_article'>Modifier</a>", "<a href='javascript:void(0)' id='mod_commentaire'>Modifier un commentaire</a>");
		$data['smenu']['Lieux'] = array(/*"<a href='javascript:void(0)' id='generation_xml' onclick='charger_image_attente()' > Genere les XML </a>", */"<a href='javascript:void(0)' id='add_carte'>Ajouter</a>", "<a href='javascript:void(0)' id='mod_carte'>Modifier</a>", /*"<a href='javascript:void(0)' id='rem_carte'>Supprimer</a>"*/);
		$data['smenu']['Connexion'] = array("<a href='javascript:void(0)' id='log_in'>S'identifier</a>", "<a href='javascript:void(0)' id='log_out'>Se déconnecter</a>");

		//les statistiques, il faut raffraichir la page pour les changer
		$nb_articles = $this->db->get('articles')->num_rows() ;
		$nb_commentaires = $this->db->get('commentaires')->num_rows() ;
		$nb_photos = $this->db->get('photos')->num_rows() ;
		$nb_videos = $this->db->get('videos')->num_rows() ;
		$nb_lieux = $this->db->get('lieux')->num_rows() ;
		$data['smenu']['Statistiques'] = array($nb_articles." articles", $nb_commentaires." commentaires", $nb_photos." photos", $nb_videos." vidéos", $nb_lieux." lieux");
		
		return $data;
	}
	
}
?>
	